# -*- coding: utf8-*- # For Forelesninger om Programmering i MENA1000 # Forelesning 3: Funksjoner ************************************************** # Vi skal lære om å skrive funksjoner selv, samt importere dem fra pakker. # Eksempel: Fakultet (!): # En funksjon er et stykke program som utføres når det kalles. # Den skal starte med def, deretter kommer nevnet og argementer i parentes. # Eksempel: En funksjon som beregner fakultet av et tall n: def nfakultet(x): i = 1 fakultet = 1 for i in range(1,x+1): fakultet *= i # kunne her også ha skrevet fakultet = fakultet * i return fakultet # Legg merke til at funksjoner returnerer et svar når vi bruker kommandoen return. # En funksjon må defineres før den kalles (lenger opp i programmet). # Her kommer den delen av programmet som kaller på funksjonen: x = 0.0 n = 1 x = input("Skriv et heltall: ") n = nfakultet(x) print x,"! = ",n # Bruk av pythons innebygde funksjoner *************************************** # Du har allerede brukt funksjonen print. Den gjør noe, men returnerer ingenting. # Nå skal vi lære to innebygde funksjoner for å hente data fra brukerens keyboard: # Brukerinput med funksjonen raw_input(prompt): s = raw_input('Oppgi temperaturen i grader celsius: ') TC = float(s) #...og her ser vi bruk av funksjonen float... print TC # Brukerinput med input(prompt): TC = input('Oppgi temperaturen i grader celsius: ') print TC # Import av pakke (med funksjoner) ******************************************* import math # Importerer hele pakken # Vi vil så bruke pakkens cosinus- og pi-funksjoner: print "cosinus av ",math.pi," er ", math.cos(math.pi) # Merk at vi kaller på funksjonen via pakkens adresse. print # Vi kan også importere enkeltfunksjoner. # Da kan vi kalle på funksjonene uten å angi pakkens navn. del math # vi fjerner pakken from math import cos, pi # Så importerer vi bare delene vi trenger. print "cosinus av ",pi," er ", cos(pi) # Merk at vi nå ikke trenger pakkens adresse. print # Vi kan også importere hele pakken (*) på denne måten: # I eksempelet under brukes funksjonen eval(s). # Den tar en tekst som inneholder et enkelt mattestykke, f.eks. 7*3.14 + 17**2, og regner ut svaret! from math import * print 'Velkommen til pythonkalkulatoren \n' # Tekststrengen \n betyr ny linje. s = '0' while s != 'STOPP': print 'Skriv inn et matteuttrykk du vil evaluere' s = raw_input('For aa avslutte skriv STOPP. \n') if s != 'STOPP': print '\n' + "Resultatet ble: " + str(eval(s)) # NB: feil i heftet print "See'ya!" # Hva skjer hvis du ikke svarer STOPP til slutt? # Da henger programmet og du må trykke Ctrl-C i vinduet der Python kjører.